package de.gwtprime.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

import de.gwtprime.shared.MyVideoEntry;
import de.gwtprime.shared.Stock;
import de.gwtprime.shared.UserDTO;
/**
 * The async counterpart of <code>PrimeService</code>.
 */
public interface PrimeServiceAsync {
	void greetServer(String input, AsyncCallback<List<Stock>> callback)
			throws IllegalArgumentException;
	
	void isLoggedIn(AsyncCallback<UserDTO> callback);

	void login(String userName, String password, AsyncCallback<UserDTO> callback);
	
	void logout(AsyncCallback<Void> callback);

	void sendMail(String name, String email, String message,
			AsyncCallback<Void> callback);


	void getVideos(int number, AsyncCallback<List<MyVideoEntry>> callback);

	void addSubstriber(String eMail, AsyncCallback<Void> callback);


	void testRPCConnection(AsyncCallback<String> callback);

	void loadTradingSignals(String name, AsyncCallback<Stock> callback);

	void retrieveNewAddress(AsyncCallback<String> callback);

	void sendCoins(String toAddress, Double amount,
			AsyncCallback<Boolean> callback);

	void getChannelToken(Long userId, AsyncCallback<String> callback);
}
